Report on a Controlled Experiment on the Impact of Software documentation for Perfective Maintenance
نویسندگان
چکیده
Context: Writing documents is a common part of software development practice. Software engineering researchers and practitioners have expressed concerns about costs and benefits software documentation. On one hand, the role of documentation in a development process is challenged by the Agile Development Manifesto. On the other hand, researchers and practitioners need to assess whether documentation cost outweighs its benefit. Objectives: The goal of this experiment is to analyze program comprehension and documentation usage process, for the purpose of quantifying the costs and benefits of documentation and identifying comprehension strategies and behavior patterns, from the point of view of software maintainers who are new to the system to maintain, in the context of maintaining a legacy software system. Method: We designed and executed a controlled to achieve our objective. 26 student subjects were recruited from Institute of Software Chinese Academy of Sciences. The subjects were partitioned into two groups. One group had only the source code while the other had both source code and documentation available. Each subject was asked to perform a maintenance task individually on a given legacy system. With other variables controlled, we intended to examine the performance differences between these two groups. The performance aspects that we were interested in include: task duration, task completion percentage and solution quality. Results: Our findings include: (1) Software documentation delays subjects’ completion of experiment task, yet help improve the implementation quality and make it easier for in-experienced maintainers to produce high-quality codes; (2) Maintainers spent 10% of the total task time on reading documents; (3) Programming experience does not impact the benefits or costs of document that maintainers; (4) Most maintainers use As-Needed strategy to understand program while a few use a Systematic strategy with the presence of the documents. Using Systematic strategy seems to provide more benefits to maintainers. Conclusion: Our study results show that software documentation’s benefit may not be reflected by the improved quality of the code, instead of how much time it can save maintainers. Also, the limited time that subjects spent on reading documents indicated that code is often trusted more than documents. The results have two implications: (1) If a maintenance team constantly adds new members, it is wise to invest in writing system document and bridging the knowledge gap between experienced and new programmers. (2)To in-experienced new maintainers, we should encourage a Systematic approach instead of As-Needed strategy to understand the system so as to get a ‘bigpicture’ and to make consistent changes to the code.
منابع مشابه
Are suggestions from coupled file changes useful for perfective maintenance tasks?
Background. Software maintenance is an important activity in the development process where maintenance team members leave and new members join over time. The identification of files which are changed together frequently has been proposed several times. Yet, existing studies about coupled file changes ignore the feedback from developers as well as the impact of these changes on the performance o...
متن کاملImpact of Controlled and Free Language Use in Retrieving Articles from the ProQuest and Science Direct Databases
Abstract Introduction: The growth and expansion of the Internet has changed the way information is accessed and many facilities have been created on the Web to facilitate and expedite information locating. Objective: To identify the impact of keyword documentation using the medical thesaurus on the retrieval of articles from Proquest and Science Direct databases. Materials and Methods:The pr...
متن کاملFrom Design Rationale to Reengineering Rationale: Lessons Learned in a Maintenance Pilot Case Study
Software can be considered an organizations asset, because it evolves and incorporates value as business rules change. So, it is important that good techniques be used in software development, in order to assure that its lifecyle is extended. One of these techniques is Design Rationale, which documents all the project decisions made during software development in order to ease revision, mainten...
متن کاملTwo Controlled Experiments Assessing the Usefulness of Design Pattern Information During Program Maintenance
This paper reports on two controlled and repeatable experiments investigating whether software design patterns improve software quality and programmer productivity during software maintenance. Subjects performed maintenance tasks on two programs ranging from 360 to 560 LOC including comments. Both programs contained design patterns. The controlled variable was whether the design patterns were d...
متن کاملStructural information as a quality metric in software systems organization
This paper proposes a metric for expressing the entropy of a software system and for assessing the quality of its organization from the perspective of impact analysis. The metric is called “structural information” and is based on a model dependency descriptor. The metric is characterized by its independence from the method of building the system and the architectural styles which represent it a...
متن کامل